package com.laundry.service;

import com.laundry.dto.OrderDTO;
import com.laundry.dto.ResultDTO;
import com.laundry.entity.Order;
import com.laundry.vo.OrderVO;

import java.math.BigDecimal;
import java.util.List;

public interface OrderService {
    ResultDTO createOrder(OrderDTO orderDTO);
    ResultDTO getOrderList(Long userId, Integer status);
    ResultDTO getOrderDetail(String orderNo);
    ResultDTO cancelOrder(String orderNo);
    ResultDTO payOrder(String orderNo, String paymentMethod);
    
    // 新增方法
    void updateOrderStatus(String orderNo, Integer status);
    List<Order> getAllOrders();
    List<Order> findByStatusIn(List<Integer> statusList);
    List<Order> findByUserIdAndStatusIn(Long userId, List<Integer> statusList);
    
    // 添加缺少的方法
    List<Order> findAll();
    List<Order> findByUserId(Long userId);
    
    // 添加管理员获取所有订单的方法
    ResultDTO getAdminOrderList();

    // 添加convertToOrderVOList方法声明
    List<OrderVO> convertToOrderVOList(List<Order> orders);

    OrderVO getOrderDetail(Long id);
    OrderVO convertToOrderVO(Order order);

    // 添加这个方法到接口中
    BigDecimal calculateTodayIncome();

    // 添加以下方法到OrderService接口
    Order findByOrderNo(String orderNo);
    List<Order> findByStatus(Integer status);
    List<Order> findByOrderNoAndStatus(String orderNo, Integer status);
} 